package com.hubu.tree;
/**
 *
 * 二叉树通用接口
 * @param <T>
 */
public interface Tree <T>{
    int size();
    boolean isEmpty();

    T add(T value);
    

    void clear();

    void preOrder();

    void inOrder();

    void postOrder();

    void levelOrder();

    int height();

    interface TreeNode<T>{
        T getValue();
        TreeNode<T> leftOf();
        TreeNode<T> rightOf();
        T setValue(T value);
        void setLeft(TreeNode<T> left);
        void setRight(TreeNode<T> right);
    }
}
